#!/bin/bash

# APK网络连通性测试脚本
# 用于诊断10.76.83.96:80的可达性

echo "=== APK服务网络连通性测试 ==="
echo "测试时间: $(date)"
echo ""

# 测试1: 基础网络连通性
echo "1. 基础网络连通性测试:"
echo "   测试命令: ping -c 3 10.76.83.96"
ping -c 3 10.76.83.96 2>/dev/null
if [ $? -eq 0 ]; then
    echo "   ✅ 网络层可达"
else
    echo "   ❌ 网络层不可达 - 可能是IP地址错误或网络问题"
fi
echo ""

# 测试2: 端口连通性
echo "2. 端口连通性测试:"
echo "   测试命令: timeout 5 bash -c '</dev/tcp/10.76.83.96/80'"
timeout 5 bash -c '</dev/tcp/10.76.83.96/80' 2>/dev/null
if [ $? -eq 0 ]; then
    echo "   ✅ 端口80开放"
else
    echo "   ❌ 端口80不可达 - 可能是防火墙或服务未启动"
fi
echo ""

# 测试3: HTTP服务测试
echo "3. HTTP服务测试:"
echo "   测试命令: curl -I --connect-timeout 5 http://10.76.83.96:80/"
curl -I --connect-timeout 5 http://10.76.83.96:80/ 2>/dev/null
if [ $? -eq 0 ]; then
    echo "   ✅ HTTP服务响应正常"
else
    echo "   ❌ HTTP服务无响应 - 可能是Web服务器未运行"
fi
echo ""

# 测试4: 本地Nginx代理测试
echo "4. 本地Nginx代理测试:"
echo "   测试命令: curl -I --connect-timeout 5 http://172.168.1.11/health-apk"
curl -I --connect-timeout 5 http://172.168.1.11/health-apk 2>/dev/null
if [ $? -eq 0 ]; then
    echo "   ✅ 本地Nginx代理正常"
else
    echo "   ❌ 本地Nginx代理异常"
fi
echo ""

# 测试5: DNS解析测试
echo "5. DNS解析测试:"
echo "   测试命令: nslookup 10.76.83.96"
nslookup 10.76.83.96 2>/dev/null
if [ $? -eq 0 ]; then
    echo "   ✅ DNS解析正常"
else
    echo "   ❌ DNS解析异常 - 可能是DNS配置问题"
fi
echo ""

echo "=== 测试完成 ==="
echo "建议:"
echo "- 如果网络层不可达，检查IP地址是否正确"
echo "- 如果端口不可达，检查远程服务器防火墙设置"
echo "- 如果HTTP服务无响应，确认远程Nginx是否运行"
echo "- 如果本地代理异常，检查本地Nginx配置"
echo ""
echo "远程服务器信息:"
echo "- IP: 10.76.83.96"
echo "- 端口: 80"
echo "- 路径: /apk/"
echo "- 作用: APK文件下载服务"